import loading from "./src/main.vue";
//使用 main.ts 注册 Vue.use(LoadPlugin)
//组件中使用
const LoadPlugin = {
  //插件install方法
  install: (Vue, options = {}) => {
    //使用Vue.extend构造器，创建一个子类loadClass，参数为引入loading组件
    const loadClass = Vue.extend(loading);
    //构建子类属性
    const data = {
      text: "",
      ...options
    };
    //实例化loadClass,即为Profile,挂载到HTMLElement实例上
    const Profile = new loadClass({
      el: document.createElement("div"),
      text: data
    });
    //插入到body中，loading.vue组件中的template模板内容将会替换挂载的元素，Profile.el中到内容最终为模板到内容
    document.body.appendChild(Profile.$el);

    //添加实例方法，挂载到Vue原型
    Vue.prototype.$loadPlugin = {
      show(text) {
        Profile.visible = true;
        if (text) {
          Profile.text = text;
        }
      },
      hide() {
        Profile.visible = false;
      }
    };
  }
};

export default LoadPlugin;
